package com.itheima.jobs;

import com.itheima.constant.RedisConstant;
import com.itheima.utils.QiNiuUtils;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.JedisPool;

import java.util.Set;

/**
 * @author : [chenys]
 * @version : [v1.0]
 * @Description : 定时清理垃圾图片 此类不会被扫描
 * @createTime : [2022/5/23 20:34]
 */
public class ClearImgJob {
    @Autowired
    private static JedisPool jedisPool;
 /**
  * 删除七牛云上的垃圾图片
  * @author chenxys
  * @param
  * @return void
  */
    public static void clearImg(){
        //根据redis中保存的两个set集合进行差值计算，获得垃圾图片名称集合 (上传的图片集合 - 数据库保存的图片集合)=垃圾图片的名称
        Set<String> diff = jedisPool.getResource().sdiff(RedisConstant.SET_MEAL_PIC_RESOURCES, RedisConstant.SET_MEAL_PIC_DB_RESOURCES);
        if (diff != null){
            for (String imgName : diff) {
                System.out.println("正在清理垃圾图片...");
                //删除七牛云上的垃圾图片
                QiNiuUtils.deleteQiNiu(imgName);
                //从redis集合中删除图片名称 删除   从哪里删除                          删谁
                jedisPool.getResource().srem(RedisConstant.SET_MEAL_PIC_RESOURCES,imgName);
            }
        }
    }
}
